From: Julian Sparber Date: Mon, 19 Feb 2024 14:15:48 +0000 (+0100) Subject: shell/global: Don't force active workspace for launch context X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~281^2~1^2~113 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=90e9f56f79a19dfc765b23843fd10fe39ef1abc0;p=gnome-shell.git shell/global: Don't force active workspace for launch context Since the launch context may also be used to activate an action on an running application with an already existing window, which we don't necessarily want to move to a different workspace, don't set a workspace for the launch context. If no active window exists for an application then it will be place on the currently active workspace anyways. Part-of: --- diff --git a/src/shell-global.c b/src/shell-global.c index c8ad62690..c2589fda8 100644 --- a/src/shell-global.c +++ b/src/shell-global.c @@ -1439,10 +1439,10 @@ shell_global_app_launched_cb (GAppLaunchContext *context, * shell_global_create_app_launch_context: * @global: A #ShellGlobal * @timestamp: the timestamp for the launch (or 0 for current time) - * @workspace: a workspace index, or -1 to indicate the current one + * @workspace: a workspace index, or -1 to indicate no specific one * * Create a #GAppLaunchContext set up with the correct timestamp, and - * targeted to activate on the current workspace. + * targeted to activate on @workspace. * * Return value: (transfer full): A new #GAppLaunchContext */ @@ -1463,12 +1463,11 @@ shell_global_create_app_launch_context (ShellGlobal *global, timestamp = shell_global_get_current_time (global); meta_launch_context_set_timestamp (context, timestamp); - if (workspace < 0) - ws = meta_workspace_manager_get_active_workspace (workspace_manager); - else - ws = meta_workspace_manager_get_workspace_by_index (workspace_manager, workspace); - - meta_launch_context_set_workspace (context, ws); + if (workspace > -1) + { + ws = meta_workspace_manager_get_workspace_by_index (workspace_manager, workspace); + meta_launch_context_set_workspace (context, ws); + } g_signal_connect (context, "launched",